#问题：Mysql，MongoDB，redis优点缺点
#mysql 
'''
优点：

体积小、速度快、总体拥有成本低，开源；
支持多种操作系统；
是开源数据库，提供的接口支持多种语言连接操作
Mysql 的核心程序采用完全的多线程编程。线程是轻量级的进程，它可以灵活地为用户提供服务，而不过多的系统资源。
用多线程和 C 语言实现的 MySql 能很容易充分利用 CPU；
MySql 有一个非常灵活而且安全的权限和口令系统。当客户与MySql服务器连接时，他们之间所有的口令传送被加密，而且 MySql 支持主机认证；
支持 ODBC for Windows，支持所有的 ODBC 2.5 函数和其他许多函数，可以用 Access 连接 MySql 服务器，使得应用被扩展；
支持大型的数据库，可以方便地支持上千万条记录的数据库。作为一个开放源代码的数据库，可以针对不同的应用进行相应的修改；
拥有一个非常快速而且稳定的基于线程的内存分配系统，可以持续使用面不必担心其稳定性。

缺点：
不支持热备份；
MySQL 最大的缺点是其安全系统，主要是复杂而非标准，另外只有到调用 mysqladmin 来重读用户权限时才发生改变；
没有一种存储过程( Stored Procedure )语言，这是对习惯于企业级数据库的程序员的最大限制；

'''

#redis
'''

优点：
读写性能优异；
支持数据持久化，支持 AOF 和 RDB 两种持久化方式；
支持主从复制，主机会自动将数据同步到从机, 可以进行读写分离；
数据结构丰富：除了支持 string 类型的 value 外，还支持 string，hash，set，list 等数据结构。

缺点：
Redis 不具备自动容错和恢复功能， 主机从机的宕机都会导致前端部分读写请求失败， 需要等待机器重启或者手动切换前端的 IP 才能恢复.
主机宕机，宕机前有部分数据未能及时同步到从机，切换IP后还会引入数据不一致的问题，降低了系统的可用性
Redis的主从复制采用全量复制，复制过程中主机会fork出一个子进程对内存做一份快照，并将子进程的内存快照保存为文件发送给从机，这一过程需要确保主机有足够多的空余内存。若快照文件较大，对集群的服务能力会产生较大的影响，而且复制过程是在从机新加入集群或者从机和主机网络断开重连时都会进行，也就是网络波动都会造成主机和从机间的一次全量的数据复制，这对实际的系统运营造成了不小的麻烦。
Redis较难支持在线扩容，在集群容量达到上限时在线扩容会变得很复杂。为避免这一问题，运维人员在系统上线时必须确保有足够的空间，这对资源造成了很大的浪费。

'''



#mongoDB
'''
优点：

弱一致性（最终一致），更能保证用户的访问速度文档结构的存储方式，能够更便捷的获取数内置 Gridfs，高效存储二进制大对象（比如照片和视频）；
支持复制集、主备、互为主备、自动分片等特性；
动态查询；
全索引支持扩展到内部对象和内嵌数组；
缺点：

不支持事务；
MongoDB 占用空间过大。

'''










